package com.cloud.lawcase.api.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.persistence.*;

import com.fasterxml.jackson.annotation.JsonFormat;

@Table(name = "tc_dic_law")
public class TcDicLaw {
	@Id
	@Column(name = "law_id")
	private Long lawId;

	@Column(name = "law_code")
	private String lawCode;

	@Column(name = "law_title")
	private String lawTitle;
	
	@Column(name = "law_desc")
	private String lawDesc;

	@Column(name = "publish_doc_code")
	private String publishDocCode;

	@Column(name = "law_type_id")
	private Integer lawTypeId;

	@Column(name = "law_region_id")
	private String lawRegionId;

	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@Column(name = "approval_date")
	private Date approvalDate;

	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@Column(name = "publish_date")
	private Date publishDate;

	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@Column(name = "release_date")
	private Date releaseDate;

	@Column(name = "sx_id")
	private Integer sxId;

	@Column(name = "xljb_id")
	private Integer xljbId;

	@Column(name = "invalid_date")
	private Date invalidDate;

	@Column(name = "invalid_remark")
	private String invalidRemark;

	@Column(name = "publish_desc")
	private String publishDesc;

	@Column(name = "publish_dept_ids")
	private String publishDeptIds;

	@Column(name = "publish_dept_names")
	private String publishDeptNames;

	@Column(name = "approval_dept_ids")
	private String approvalDeptIds;

	@Column(name = "approval_dept_names")
	private String approvalDeptNames;

	@Column(name = "group_id")
	private Long groupId;

	@Transient
	private String groupName;
	
	@Transient 
	private String sxName;

	@Transient
	private String effectLevelName;

	@Transient
	private String lawTypeName;

	@Transient
	private Integer maxChapterId;

	@Transient
	private Integer maxSectionId;

	@Transient
	private Integer maxArticleId;

	@Transient
	private List<Map<String, Object>> statLists = new ArrayList<Map<String, Object>>();

	/**
	 * @return law_code
	 */
	public String getLawCode() {
		return lawCode;
	}

	/**
	 * @param lawCode
	 */
	public void setLawCode(String lawCode) {
		this.lawCode = lawCode;
	}

	/**
	 * @return law_title
	 */
	public String getLawTitle() {
		return lawTitle;
	}

	/**
	 * @param lawTitle
	 */
	public void setLawTitle(String lawTitle) {
		this.lawTitle = lawTitle;
	}

	/**
	 * @return publish_doc_code
	 */
	public String getPublishDocCode() {
		return publishDocCode;
	}

	/**
	 * @param publishDocCode
	 */
	public void setPublishDocCode(String publishDocCode) {
		this.publishDocCode = publishDocCode;
	}

	/**
	 * @return approval_date
	 */
	public Date getApprovalDate() {
		return approvalDate;
	}

	/**
	 * @param approvalDate
	 */
	public void setApprovalDate(Date approvalDate) {
		this.approvalDate = approvalDate;
	}

	/**
	 * @return publish_date
	 */
	public Date getPublishDate() {
		return publishDate;
	}

	/**
	 * @param publishDate
	 */
	public void setPublishDate(Date publishDate) {
		this.publishDate = publishDate;
	}

	/**
	 * @return release_date
	 */
	public Date getReleaseDate() {
		return releaseDate;
	}

	/**
	 * @param releaseDate
	 */
	public void setReleaseDate(Date releaseDate) {
		this.releaseDate = releaseDate;
	}

	/**
	 * @return sx_id
	 */
	public Integer getSxId() {
		return sxId;
	}

	/**
	 * @param sxId
	 */
	public void setSxId(Integer sxId) {
		this.sxId = sxId;
	}

	/**
	 * @return xljb_id
	 */
	public Integer getXljbId() {
		return xljbId;
	}

	/**
	 * @param xljbId
	 */
	public void setXljbId(Integer xljbId) {
		this.xljbId = xljbId;
	}

	/**
	 * @return invalid_date
	 */
	public Date getInvalidDate() {
		return invalidDate;
	}

	/**
	 * @param invalidDate
	 */
	public void setInvalidDate(Date invalidDate) {
		this.invalidDate = invalidDate;
	}

	/**
	 * @return invalid_remark
	 */
	public String getInvalidRemark() {
		return invalidRemark;
	}

	/**
	 * @param invalidRemark
	 */
	public void setInvalidRemark(String invalidRemark) {
		this.invalidRemark = invalidRemark;
	}

	/**
	 * @return publish_desc
	 */
	public String getPublishDesc() {
		return publishDesc;
	}

	/**
	 * @param publishDesc
	 */
	public void setPublishDesc(String publishDesc) {
		this.publishDesc = publishDesc;
	}

	/**
	 * @return group_id
	 */
	public Long getGroupId() {
		return groupId;
	}

	/**
	 * @param groupId
	 */
	public void setGroupId(Long groupId) {
		this.groupId = groupId;
	}

	public String getPublishDeptIds() {
		return publishDeptIds;
	}

	public void setPublishDeptIds(String publishDeptIds) {
		this.publishDeptIds = publishDeptIds;
	}

	public String getPublishDeptNames() {
		return publishDeptNames;
	}

	public void setPublishDeptNames(String publishDeptNames) {
		this.publishDeptNames = publishDeptNames;
	}

	public String getApprovalDeptIds() {
		return approvalDeptIds;
	}

	public void setApprovalDeptIds(String approvalDeptIds) {
		this.approvalDeptIds = approvalDeptIds;
	}

	public String getApprovalDeptNames() {
		return approvalDeptNames;
	}

	public void setApprovalDeptNames(String approvalDeptNames) {
		this.approvalDeptNames = approvalDeptNames;
	}

	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	public Integer getLawTypeId() {
		return lawTypeId;
	}

	public void setLawTypeId(Integer lawTypeId) {
		this.lawTypeId = lawTypeId;
	}

	public String getLawRegionId() {
		return lawRegionId;
	}

	public void setLawRegionId(String lawRegionId) {
		this.lawRegionId = lawRegionId;
	}

	public Long getLawId() {
		return lawId;
	}

	public void setLawId(Long lawId) {
		this.lawId = lawId;
	}

	public List<Map<String, Object>> getStatLists() {
		return statLists;
	}

	public void setStatLists(List<Map<String, Object>> statLists) {
		this.statLists = statLists;
	}

	public String getSxName() {
		return sxName;
	}

	public void setSxName(String sxName) {
		this.sxName = sxName;
	}

	public String getEffectLevelName() {
		return effectLevelName;
	}

	public void setEffectLevelName(String effectLevelName) {
		this.effectLevelName = effectLevelName;
	}

	public String getLawTypeName() {
		return lawTypeName;
	}

	public void setLawTypeName(String lawTypeName) {
		this.lawTypeName = lawTypeName;
	}

	public Integer getMaxChapterId() {
		return maxChapterId;
	}

	public void setMaxChapterId(Integer maxChapterId) {
		this.maxChapterId = maxChapterId;
	}

	public Integer getMaxSectionId() {
		return maxSectionId;
	}

	public void setMaxSectionId(Integer maxSectionId) {
		this.maxSectionId = maxSectionId;
	}

	public Integer getMaxArticleId() {
		return maxArticleId;
	}

	public void setMaxArticleId(Integer maxArticleId) {
		this.maxArticleId = maxArticleId;
	}

	public String getLawDesc() {
		return lawDesc;
	}

	public void setLawDesc(String lawDesc) {
		this.lawDesc = lawDesc;
	}
	
	
}
